home *** CD-ROM | disk | FTP | other *** search
-
- ********************************
- * CRC PROTOCOL CALCULATION *
- * FOR COMMODORE COMPUTERS *
- * By Tom Brown *
- ********************************
-
-
- calc = $1021
-
-
- ************************************
- * THE POLYNOMIAL $1021 IS FOR THE *
- * CALCULATION 2^16 + 2^12 + 2^5 + 1*
- * THE NUMBER IS GOTTEN BY USING A *
- * 1 IN EACH BIT CORRESPONDING TO *
- * THE POLYNOMIAL. *
- * EG: $1021 HAS A 1 IN BIT 0,5,& 12*
- ************************************
-
-
-
- org $1300
-
- *
- * FIRST, WE HAVE TO ERASE THE OLD
- * CRC VALUE AND INITIALIZE THE
- * POLYNOMIAL WE WILL USE FOR THE
- * CALCULATION. NOTE THAT THE POLY
- * VARIABLE CAN BE CHANGED IN ONE
- * PLACE TO BE USED BY THE WHOLE
- * ROUTINE.
- * A CALLING ROUTINE WILL CALL THIS
- * ONLY ONCE. SUBSEQUENT CALLS WILL
- * BE TO crcalc.
- *
-
-
- initcrc lda #0
- sta crc ;CRC CALCULATION
- sta crc+1
- lda #<calc
- sta poly ;POLYNOMIAL
- lda #>calc
- sta poly+1
- rts
-
-
- *
- * THIS ROUTINE WILL CALCULATE THE
- * CRC CHECKSUM WITH THE BYTE CURRENTLY
- * IN THE ACCUMULATOR.
- *
-
-
- crcalc ldx #8 ;COUNT 8 BITS
- loop pha ;SAVE DATA
-
-
- *
- * FIRST, WE xor BIT 7 OF DATA WITH
- * BIT 15 OF CRC (BIT 7 OF HIGH BYTE)
- *
-
-
-
- and #12